package com.zzyl.service;

import com.zzyl.base.PageBean;
import com.zzyl.dto.RoleDto;
import com.zzyl.entity.Role;
import com.zzyl.vo.RoleVo;

import java.util.List;
import java.util.Set;

public interface RoleService {

    /**
     * 角色分页
     *
     * @param dto      角色Dto
     * @param pageNum  书籍页码
     * @param pageSize 页面大小
     * @return {@code PageBean<RoleVo> }
     * @author YiSheep
     */
    PageBean<RoleVo> pageQuery(RoleDto dto, Integer pageNum, Integer pageSize);

    /**
     * 角色添加
     *
     * @param dto 角色Dto
     * @author YiSheep
     */
    void roleAdd(RoleDto dto);



    /**
     * 删除角色
     *
     * @param id 角色ID
     * @author YiSheep
     */
    void roleDelete(Long id);


    /**
     * 查询所有角色
     *
     * @return {@code List<RoleVo> }
     * @author YiSheep
     */
    List<RoleVo> list();

    /**
     * 角色修改
     *
     * @param dto 角色Dto
     * @author YiSheep
     */
    void roleUpdate(RoleDto dto);

    /**
     * 根据角色查询选中的资源数据
     *
     * @param roleId 角色id
     * @return {@code Set<String> }
     * @author YiSheep
     */
    Set<String> findCheckedResources(Long roleId);
}
